//正整数和负整数的最大计数
/*给你一个按 非递减顺序 排列的数组 nums ，返回正整数数目和负整数数目中的最大值。

换句话讲，如果 nums 中正整数的数目是 pos ，而负整数的数目是 neg ，返回 pos 和 neg二者中的最大值。
注意：0 既不是正整数也不是负整数。
1 <= nums.length <= 2000
-2000 <= nums[i] <= 2000
nums 按 非递减顺序 排列。
*/
int maximumCount(int* nums, int numsSize) {
    int negative_int_count=0;
    int positive_int_count=0;
    for(int i=0;i<numsSize;i++)
    {
        if(nums[i]<0)
        negative_int_count++;
        else if(nums[i]>0)
        positive_int_count++;
    }    
    return fmax(negative_int_count,positive_int_count);
}


int maximumCount(int* nums, int numsSize) {
    int positive_int_count = 0;
    int negative_int_count = 0;
    int left = 0;
    int right = numsSize - 1;
    while (left <= right) {
        int mid = (left + right) / 2;
        if (nums[mid] >= 0) {
            right = mid - 1;
        } else {
            left = mid + 1;
        }
    }
    negative_int_count = right + 1;
    left = 0;
    right = numsSize - 1;
    while (left <= right) {
        int mid = (left + right) / 2;
        if (nums[mid] <= 0) {
            left = mid + 1;
        } else {
            right = mid - 1;
        }
    }
    positive_int_count = numsSize - left;
     return fmax(positive_int_count,negative_int_count);
     //return positive_int_count;
    //return negative_int_count;
}

